﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using IrcChatClient.SpecificControls;

namespace IDE
{
    public partial class Form1 : Form
    {
        float taille = 10f;
        string copie;
        private string a;

        public Form1()
        {
            InitializeComponent();

        }

        public Form1(string a)
        {
            // TODO: Complete member initialization
            this.a = a;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

     

        private void fermerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Environment.Exit(0);
        }

        private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.Clear();
            explorateur.ShowDialog();//execute une fenêtre pour ouvrir fichier
            try
            {
                // Création d'une instance de StreamReader pour permettre la lecture de notre fichier 
                StreamReader lecture = new StreamReader(explorateur.FileName);
                string ligne = lecture.ReadLine();

                // Lecture de toutes les lignes et affichage de chacune sur la page 
                while (ligne != null)
                {
                    Contenu.Text += ligne + "\n";
                    ligne = lecture.ReadLine();
                }
                // Fermeture du StreamReader (attention très important) 
                lecture.Close();
            }
            catch (Exception ex)
            {
                // Code exécuté en cas d'exception 
                Contenu.Text = "Une erreur est survenue au cours de la lecture !";
                Contenu.Text = ex.Message;
            }
        }

        private void supprimerToolStripMenuItem_Click(object sender, EventArgs e)
        {

            File.Delete(explorateur.FileName);
            Contenu.Clear();
        }

        private void sauvegardeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                if (explorateur.FileName != null)// Instanciation du StreamWriter avec passage du nom du fichier 
                {
                    StreamWriter ecriture = new StreamWriter(explorateur.FileName);

                    //Ecriture du texte dans votre fichier 
                    ecriture.WriteLine(Contenu.Text);
                    // Fermeture du StreamWriter (Très important) 
                    ecriture.Close();
                }
            }
            catch (Exception ex)
            {
                // Code exécuté en cas d'exception 
                Console.Write(ex.Message);
            }

        }
        private void mAJUSCULEToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.SelectedText = Contenu.SelectedText.ToUpper();
        }

        private void minisculeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.SelectedText = Contenu.SelectedText.ToLower();
        }

        private void zoomAvantToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.Font = new Font("Consolas", taille += 2);
        }

        private void zoomArrèreToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (taille >= 2)
                Contenu.Font = new Font("Consolas", taille -= 2);
        }

        private void copierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            copie = Contenu.SelectedText;
            Clipboard.SetText(copie);
        }

        private void collerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.Paste();
        }

        private void rechercheToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Form2 recherche = new Form2(Contenu, richTextBox2);
            recherche.Show();
            richTextBox2.Text = recherche.aff;
        }

        private void remplacerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 remplacer = new Form2(Contenu, richTextBox2);
            remplacer.Rechercher_Remplacer.SelectedIndex = 1;
            remplacer.Show();
        }

        private void augmenterToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.Select(0, 0);
            Contenu.SelectedText = "    ";
        }

        private void diminuerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Contenu.Select(0,4);
            if(Contenu.SelectedText=="    ")
                Contenu.SelectedText = "";
            Contenu.Select(0, 0);
        }
        private void trouducul(object sender, EventArgs e)
        {
           
        }

        private void cToolStripMenuItem_Click(object sender, EventArgs e)
        {  
            try
            {
                StreamReader lecture = new StreamReader("cs.txt");
                string ligne = lecture.ReadLine();

                //remplace un tableau car on ne connais pas le nombre de balises.
                List<string> list = new List<string>();

                // Stocke les balises du langage dans un tableau
                while (ligne != null)
                {
                        list.Add(ligne);
                        ligne = lecture.ReadLine();
                }
                Contenu.setWord(list.ToArray());
                lecture.Close();
            }
            catch (Exception ex)
            {
                Contenu.Text = "Le fichier de définition du langage C# est introuvable";
                Contenu.Text = ex.Message;
            }
        }

        private void hTMLToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                StreamReader lecture = new StreamReader("html.txt");
                string ligne = lecture.ReadLine();

                //remplace un tableau car on ne connais pas le nombre de balises.
                List<string> list = new List<string>();

                // Stocke les balises du langage dans un tableau
                while (ligne != null)
                {
                        list.Add(ligne);
                        ligne = lecture.ReadLine();
                }
                Contenu.setWord(list.ToArray());
                lecture.Close();
            }
            catch (Exception ex)
            {
                Contenu.Text = "Le fichier de définition du langage HTML est introuvable";
                Contenu.Text = ex.Message;
            }
        }

    }
}
